package com.bkgy.modularbx.dictionary.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * 数据字典修改DTO
 */
@Data
public class DataDictionaryUpdateDto {
    /**
     * 序号，数据字典记录的唯一标识
     * 必填字段，用于定位需要修改的记录
     */
    @Schema(description = "序号", required = true)
    @NotNull(message = "id不可以为空")
    private Integer indocno;

    /**
     * 产线编号，用于标识不同的生产线
     * 必填字段，用于区分不同的生产线数据
     */
    @Schema(description = "产线", required = true)
    @NotNull(message = "产线不可以为空")
    private String productionLine;

    /**
     * 区域代码，用于标识生产线中的特定区域
     * 必填字段，用于定位具体的生产区域
     */
    @Schema(description = "区域代码", required = true)
    @NotNull(message = "区域代码不可以为空")
    private String areaCode;

    /**
     * 变量名，用于标识数据字典中的具体变量
     * 必填字段，作为数据字典的关键标识符
     */
    @Schema(description = "变量名", required = true)
    @NotNull(message = "变量名不可以为空")
    private String dicVariableName;

    /**
     * 内部数据源代码，用于标识数据来源的系统或数据库
     * 可选字段，指定数据的来源系统
     */
    private String inDataSource;

    /**
     * 内部数据源MongoDB集合名称
     * 可选字段，当数据源为MongoDB时使用的集合名称
     */
    private String mongoCollectName;

    /**
     * 区域描述，对区域的详细说明
     * 可选字段，提供区域的补充信息
     */
    private String areaDescription;

    /**
     * 设备描述，对设备的详细说明
     * 可选字段，提供设备的补充信息
     */
    private String deviceDescription;

    /**
     * 设备代码，用于标识具体的设备
     * 可选字段，用于关联到特定的设备
     */
    private String deviceCode;

    /**
     * 变量描述，对变量的详细说明
     * 可选字段，提供变量的补充信息
     */
    private String dicVariableDescription;

    /**
     * 变量属性，用于标识变量的特性或类型
     * 可选字段，指定变量的属性值
     */
    private String dicVariableProperty;

    /**
     * 是否在用，标识该记录是否处于启用状态
     * 可选字段，1表示启用，0表示禁用
     */
    private String enable;

    /**
     * 创建时间
     */
    private Date toc;

    /**
     * 修改时间
     */
    private Date tom;
}